package com.ncd.this_super;
/*
* title：this调用自己本类的构造方法
* */
public class Test {
    /*
    开闭原则：对功能扩展做开发，对修改的代码做关闭
    * */

    public static void main(String[] args) {
        A a1 = new A(1, 2, 3);
        A a2 = new A(4, 4, 5);

        A b = new A(1, 2, 3, 4);

    }
    /*项目1.0版本：有三个成员变量
        项目2.0：有四个成员变量
    * */
}

class A {
    int a;
    int b;
    int c;
    int d;

    public A() {

    }

    public A(int a, int b, int c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }

//    public A(int a,int b,int c, int d) {
//        this.a = a;
//        this.b = b;
//        this.c = c;
//        this.d = d;
//    }

/*
上面的代码过于繁杂重复。下面是优化后的
* */
    public A(int a,int b,int c, int d) {
        this(a, b, c);
        this.d = d;
    }

}
